sqroot (N)
{
 local k2, u, v, u2, n;
 if ( 2 > N) return (N);
 u = N;
 k2 = 0;
 while (u >>= 2) k2++;
 u = 1 << k2;
 v = u;
 u2 = u << k2;
 while (k2--)
 {
  v >>= 1;
  n = (u + u + v)<<k2;
  n += u2;
  if (n <= N)
  {
   u += v;
   u2 = n;
  }
 }
 return (u);
}

main()
{
 print("Positive integer :");
 x = val(input());
 print("Integer part of square root is ",
         sqroot(x),
         "\n");
}
  